/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	DataTypeEnum.java
 * 模块说明：	
 * 修改历史：
 * Dec 7, 2007 - lxm - 创建。
 */
package com.hd123.rumba.gwt.cpnts.filter.client.biz;

import java.io.Serializable;

/**
 * 数据类型 | 枚举类
 * 
 * @author lxm
 * 
 */
public final class DataTypeEnum implements Serializable {

  public static DataTypeEnum Unknown = new DataTypeEnum(-1, "未知");
  public static DataTypeEnum Integer = new DataTypeEnum(1, "整数");
  public static DataTypeEnum Decimal = new DataTypeEnum(2, "十进制数");
  public static DataTypeEnum Boolean = new DataTypeEnum(3, "布尔");
  public static DataTypeEnum Date = new DataTypeEnum(4, "日期时间");
  public static DataTypeEnum String = new DataTypeEnum(5, "字符串");
  public static DataTypeEnum Bag = new DataTypeEnum(11, "集合");
  public static DataTypeEnum Class = new DataTypeEnum(12, "类");
  
  private DataTypeEnum() {
    super();
    this.value = -1;
    this.caption = "未知";
  }
  
  private DataTypeEnum(int value, String caption) {
    super();
    this.value = value;
    this.caption = caption;
  }
  
  public boolean equals(Object obj) {
    if (obj == null)
      return false;
    if (!(obj instanceof DataTypeEnum))
      return false;
    return this.value == ((DataTypeEnum) obj).getValue();
  }
  
  public int hashCode() {
    return this.value * 17 + 29;
  }
  
  /**
   * 判断是否是基本数据类型
   * @return
   */
  public boolean isBasic() {
    return this.value <= 10;
  }
  
  private final int value;
  private final String caption;

  public String getCaption() {
    return caption;
  }

  public int getValue() {
    return value;
  }

}
